From c2f175d79c94054e0bc16e9ab3ca080be20ee2fe Mon Sep 17 00:00:00 2001 From: robertl Date: Tue, 28 Jun 2005 20:55:31 +0000 Subject: [PATCH] Sketch in HDOP, PDOP, VDOP, COURSE, and Speed into GPX writer to pave the way for Vito work. --- defs.h | 9 +++++++++ gpx.c | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/defs.h b/defs.h index 8de80b592..fb8b2dabc 100644 --- a/defs.h +++ b/defs.h @@ -242,6 +242,15 @@ typedef struct { * nice enough to use exactly the same priority scheme. */ int route_priority; + + /* Optional dilution of precision: positional, horizontal, veritcal. + * 1 <= dop <= 50 + */ + unsigned char hdop; + unsigned char vdop; + unsigned char pdop; + signed short course; /* Optional: degrees true */ + signed int speed; /* Optional: meters per second. */ geocache_data gc_data; xml_tag *gpx_extras; diff --git a/gpx.c b/gpx.c index 1f0508585..4deb6a2b3 100644 --- a/gpx.c +++ b/gpx.c @@ -1139,6 +1139,25 @@ write_gpx_url(const waypoint *waypointp) } } +/* + * Write optional accuracty information for a given (way|track|route)point + * to the output stream. Done in one place since it's common for all three. + * Order counts. + */ +static void +gpx_write_accuracy(const waypoint *waypointp) +{ + if (waypointp->hdop) { + fprintf(ofd, " %d\n", waypointp->hdop); + } + if (waypointp->vdop) { + fprintf(ofd, " %d\n", waypointp->vdop); + } + if (waypointp->pdop) { + fprintf(ofd, " %d\n", waypointp->pdop); + } +} + static void gpx_waypt_pr(const waypoint *waypointp) { @@ -1179,6 +1198,7 @@ gpx_waypt_pr(const waypoint *waypointp) write_gpx_url(waypointp); write_optional_xml_entity(ofd, " ", "sym", waypointp->icon_descr); + gpx_write_accuracy(waypointp); fprint_xml_chain( waypointp->gpx_extras, waypointp ); fprintf(ofd, "\n"); @@ -1220,6 +1240,7 @@ gpx_track_disp(const waypoint *waypointp) write_optional_xml_entity(ofd, " ", "desc", waypointp->notes); write_gpx_url(waypointp); write_optional_xml_entity(ofd, " ", "sym", waypointp->icon_descr); + gpx_write_accuracy(waypointp); fprintf(ofd, "\n"); } @@ -1265,6 +1286,7 @@ gpx_route_disp(const waypoint *waypointp) write_optional_xml_entity(ofd, " ", "cmt", waypointp->description); write_optional_xml_entity(ofd, " ", "desc", waypointp->notes); write_optional_xml_entity(ofd, " ", "sym", waypointp->icon_descr); + gpx_write_accuracy(waypointp); fprintf(ofd, " \n"); } -- 2.30.2